#ifndef USER_H
#define USER_H

#include <QString>
#include <QDateTime>

class User
{
public:
    // 构造函数
    User();
    User(int id, const QString &username, const QString &password, const QDateTime &registerTime = QDateTime::currentDateTime());
    
    // 获取用户信息的方法
    int getId() const;
    QString getUsername() const;
    QString getPassword() const;
    QDateTime getRegisterTime() const;
    
    // 设置用户信息的方法
    void setId(int id);
    void setUsername(const QString &username);
    void setPassword(const QString &password);
    // 直接设置已经加密过的密码（从数据库读取时使用）
    void setHashedPassword(const QString &hashedPassword);
    void setRegisterTime(const QDateTime &registerTime);
    
    // 密码加密方法
    static QString encryptPassword(const QString &password);
    
    // 验证密码方法
    bool validatePassword(const QString &inputPassword) const;

private:
    int m_id;                    // 用户ID
    QString m_username;          // 用户名
    QString m_password;          // 加密后的密码
    QDateTime m_registerTime;    // 注册时间
};

#endif // USER_H
